The present invention relates generally to digital image compression and decompression.
The field of digital data compression and in particular digital image compression has attracted great interest for some time.
In the field of digital image compression, many different techniques have been utilised, such as the popular JPEG standard. The JPEG standard divides the whole digital image into 8xc3x978 blocks of pixels, each of which are then discrete cosine transformed (DCT). The transform coefficients of each block are then quantised and fed in a predetermined scanning order to a run-length coder and entropy coder. Typically, the transform coefficients are buffered between the DCT transformer and entropy coder.
A call for proposals for the new JPEG-2000 standard was recently issued and a draft standard has been published entitled xe2x80x9cInformation Technologyxe2x80x94JPEG 2000 Image coding Systemxe2x80x94JPEG 2000 Committee Draft version 1.0, Dec. 9, 1999xe2x80x9d (herein after referred to as JPEG2000).
JPEG2000 proposes that the whole image be divided into one or more image tile components, each of which are then 2-D discrete wavelet transformed. The transform coefficients of each image tile component are then grouped into sub-bands, which sub-bands are further partitioned into rectangular code blocks before each code block is then entropy encoded.
It has been proposed to use a double buffering arrangement in a hardware implementation of JPEG2000 between the DWT transformer and the entropy coder for each subband. However, this proposal suffers from the disadvantage that the amount of memory needed for buffering the transform coefficients is quite large.
It is an object of the present invention to substantially overcome, or at least ameliorate, one or more disadvantages of existing arrangements.
According to one aspect of the invention, there is provided a method of storing a block of transform coefficients in a buffer between a transformer and at least one coder, the method comprising the steps of: re-arranging said block of transform coefficients into one or more sub-blocks of transform coefficients; generating a lossless compressed representation of the block of transform coefficients for the purposes of reducing storage, wherein the lossless compression technique achieves compression by representing those bit-planes above the most significant bit-planes of the respective sub-blocks in a compact form; and storing said lossless compressed representation in said buffer.
According to another aspect of the invention, there is provided a method of coding a code block of transform coefficients, wherein the code block comprises a predetermined number of bit-planes and the method comprises the steps of: re-arranging the code block of transform coefficients into one or more sub-blocks of transform coefficients; generating groups of bit symbols, wherein the bit symbols of the groups correspond to bit symbols of respective significant bitplanes of the sub-blocks; generating data corresponding to each sub-block indicating the number of significant bit-planes in the corresponding sub-block; storing the groups of bit symbols and the generated data in a buffer; retrieving from the buffer said groups of bit symbols and generated data; reconstituting the bitplanes of the code block from its most significant bitplane to the predetermined minimum bitplane utilising corresponding said groups of bit symbols and said generated data; and bit-plane encoding the reconstituted bitplanes of the code block of transform coefficients.
According to still another aspect of the invention, there is provided a method of decoding a bit-plane encoded code block of transform coefficients, the method comprises the steps of: bit-plane decoding said encoded code block from a most significant bit-plane to a predetermined minimum bit-plane of the code block; re-arranging the decoded code block into one or more sub-blocks of bitplanes; generating groups of bit symbols, wherein the bit symbols of the groups correspond to bit symbols of respective significant bitplanes of the sub-blocks; generating data corresponding to each sub-block indicating the number of significant bit-planes in the corresponding sub-block; storing the groups of bit symbols and the generated data in a buffer; retrieving from the buffer said groups of bit symbols and generated data; sand reconstituting the bitplanes of the code block utilising corresponding said groups of bit symbols and said generated data.
According to still another aspect of the invention, there is provided apparatus for storing a block of transform coefficients in a buffer between a transformer and at least one coder, the apparatus comprising: a controller for re-arranging said block of transform coefficients into one or more sub-blocks of transform coefficients and generating a lossless compressed representation of the block of transform coefficients for the purposes of reducing storage, wherein the lossless compression technique achieves compression by representing those bit-planes above the most significant bit-planes of the respective sub-blocks in a compact form.
According to still another aspect of the invention, there is provided apparatus for coding a code block of transform coefficients, wherein the code block comprises a predetermined number of bit-planes and the apparatus comprises: a module for re-arranging the code block of transform coefficients into one or more sub-blocks of transform coefficients, a controller for generating groups of bit symbols wherein the bit symbols of the groups correspond to bit symbols of respective significant bitplanes of the sub-blocks, and for generating data corresponding to each sub-block indicating the number of significant bit-planes in the corresponding sub-block; a buffer for storing the groups of bit symbols and the generated data; a decoder for retrieving from the buffer said groups of bit symbols and generated data, and reconstituting the bitplanes of the code block from its most significant bitplane to the predetermined minimum bitplane utilising the corresponding said groups of bit symbols and said generated data; and a bit-plane encoder for encoding the reconstituted bitplanes of the code block of transform coefficients.
According to still another aspect of the invention, there is provided apparatus for decoding a bit-plane encoded code block of transform coefficients, the apparatus comprising: a bit-plane decoder for bit-plane decoding said encoded code block from a most significant bit-plane to a predetermined minimum bit-plane of the code block; a module for re-arranging the decoded code block into one or more sub-blocks of bitplanes; a controller for generating groups of bit symbols wherein the bit symbols of the groups correspond to bit symbols of respective significant bitplanes of the sub-blocks, and for generating data corresponding to each sub-block indicating the number of significant bit-planes in the corresponding sub-block; a buffer for storing the groups of bit symbols and the generated data; a decoder for retrieving from the buffer said groups of bit symbols and generated data, and for reconstituting the bitplanes of the code block utilising corresponding said groups of bit symbols and said generated data.
According to still another aspect of the invention, there is provided a computer program for storing a block of transform coefficients in a buffer prior to encoding, the computer program comprising code for re-arranging said block of transform coefficients into one or more sub-blocks of transform coefficients; code for generating a lossless compressed representation of the block of transform coefficients for the purposes of reducing storage, wherein the lossless compression technique achieves compression by representing those bit-planes above the most significant bit-planes of the respective sub-blocks in a compact form; and code for storing said lossless compressed representation in said buffer.
According to still another aspect of the invention, there is provided a computer program for coding a code block of transform coefficients, wherein the code block comprises a predetermined number of bit-planes and the computer program comprises: code for re-arranging the code block of transform coefficients into one or more sub-blocks of transform coefficients; code for generating groups of bit symbols, wherein the bit symbols of the groups correspond to bit symbols of respective significant bitplanes of the sub-blocks; code for generating data corresponding to each sub-block indicating the number of significant bit-planes in the corresponding sub-block; code for storing the groups of bit symbols and the generated data in a buffer; code for retrieving from the buffer said groups of bit symbols and generated data; code for reconstituting the bitplanes of the code block from its most significant bitplane to the predetermined minimum bitplane utilising corresponding said groups of bit symbols and said generated data; and code for bit-plane encoding the reconstituted bitplanes of the code block of transform coefficients.
According to still another aspect of the invention, there is provided a computer program for decoding a bit-plane encoded code block of transform coefficients, the computer program comprising: code for bit-plane decoding said encoded code block from a most significant bit-plane to a predetermined minimum bit-plane of the code block; code for re-arranging the decoded code block into one or more sub-blocks of bitplanes; code for generating groups of bit symbols, wherein the bit symbols of the groups correspond to bit symbols of respective significant bitplanes of the sub-blocks; code for generating data corresponding to each sub-block indicating the number of significant bit-planes in the corresponding sub-block; code for storing the groups of bit symbols and the generated data in a buffer; retrieving from the buffer said groups of bit symbols and generated data; and code for reconstituting the bitplanes of the code block utilising corresponding said groups of bit symbols and said generated data.